package com.enjoyor.soa.traffic.rest.efoms.dubbo;

import java.util.List;

import com.enjoyor.soa.traffic.api.dto.efoms.WorkordersInfoDto;
import com.enjoyor.soa.traffic.util.pojo.Page;
import com.enjoyor.soa.traffic.util.pojo.ResultPojo;

public interface IWorkordersInfoConsumeService {
	/**
     * 根据ID获取维修工单信息
     * @param workordersId 维修工单编号
     * @return
     */
    public ResultPojo selectWorkordersInfoById(String workordersId);
    
    /**
     * 获取维修工单列表信息
     * @param workordersId 维修工单编号
     * @param repStartDate 报修开始时间
     * @param repEndDate 报修结束时间
     * @param devCategoryCode 设备种类编号
     * @param devTypeCode 设备类型编号
     * @param devId 设备编号
     * @param devName 设备名称
     * @param key 关键字（设备编号或设备名称）
     * @param devAreaCode 设备所属区域
     * @param devDeptId 设备所属部门
     * @param failureTypeCode 故障类型编号
     * @param failureDescrible 故障描述
     * @param repSourceCode 报修来源编号
     * @param workordersStatusCode 工单状态编号
     * @param lableClick 标签勾选(催办press、延期postpone、逾期overtime、进度反馈fackback、驳回isreject)
     * @return List
     */
	public ResultPojo selectWorkordersInfoList(String workordersId, String repStartDate, String repEndDate,
			String devCategoryCode, String devTypeCode, String devId, String devName, String key, String devAreaCode,
			String devDeptId, String failureTypeCode, String failureDescrible, String repSourceCode,
			String workordersStatusCode, String lableClick);
	
    /**
     * 获取维修工单分页信息
     * @param workordersId 维修工单编号
     * @param repStartDate 报修开始时间
     * @param repEndDate 报修结束时间
     * @param devCategoryCode 设备种类编号
     * @param devTypeCode 设备类型编号
     * @param devId 设备编号
     * @param devName 设备名称
     * @param key 关键字（设备编号或设备名称）
     * @param devAreaCode 设备所属区域
     * @param devDeptId 设备所属部门
     * @param failureTypeCode 故障类型编号
     * @param failureDescrible 故障描述
     * @param repSourceCode 报修来源编号
     * @param workordersStatusCode 工单状态编号
     * @param orderSeq 排序列名
     * @param orderMode 排序方式(升序asc,降序desc)
     * @param lableClick 标签勾选(催办press、延期postpone、逾期overtime、进度反馈fackback、驳回isreject)
     * @param noStatusCodeList 排除状态编号
     * @return Page
     */
    public ResultPojo selectWorkordersInfoPage(Page page, String workordersId, String repStartDate, String repEndDate,
			String devCategoryCode, String devTypeCode, String devId, String devName, String key, String devAreaCode,
			String devDeptId, String failureTypeCode, String failureDescrible, String repSourceCode,
			String workordersStatusCode, String orderSeq, String orderMode, String lableClick, List<String> noStatusCodeList);
    
    /**
     * 新增维修工单信息
     * @param workordersInfoDto 维修工单实体信息
     * @param personName 操作人
     * @return
     */
    public ResultPojo insertWorkordersInfo(WorkordersInfoDto workordersInfoDto, String personName);

    /**
     * 修改维修工单信息
     * @param workordersInfoDto 维修工单实体信息
     * @param personName 操作人
     * @return
     */
    public ResultPojo updateWorkordersInfo(WorkordersInfoDto workordersInfoDto, String personName);

    /**
     * 新增维修工单信息
     * @param workordersId 维修工单编号
     * @param personName 操作人
     * @return
     */
    public ResultPojo deleteWorkordersInfo(String workordersId, String personName);
    
    /**
     * 获取维修工单各状态数量统计
     * @param startTime 开始时间
     * @param endTime 结束时间
     * @return
     */
    public ResultPojo selectOperationCount(String startTime, String endTime);
}
